/*
 * SEGUNDA ENTREGA DEL PROYECTO DE BASES DE DATOS "BIBLIOTECA DIGITAL"
 * 
 * Integrantes:
 * Gamboa Edwin Ricardo Cód: 0926631 plan: 2711
 * Portilla Cortes Maria Cristina Cód: 0844113 plan: 3743 
 * Rosero Rosero Luis Alberto Cód: 0943740 plan:3743
 * 
 */
package controlador;
import java.util.Vector;
import accesoDatos.*;
import logica.*;
/**
 *
 * @author Gamboa Family
 */
public class ControladorArea {
    
    public void insertarArea(String codigo, String  nombre,  String descripcion){
        AreaConocimiento a = new AreaConocimiento();
        DaoAreaConocimiento daoAreaConocimiento=new DaoAreaConocimiento();
       
        a.setCodigo(codigo);
        a.setNombre(nombre);
        a.setDescripcion(descripcion); 
        a.setEstado("0");
        //Se llama al dao para guardar
        System.out.println("Se va a insertar una area de conocimiento");
        
        daoAreaConocimiento.guardarArea(a);

        System.out.println("Se  insertó  una  nueva area de conocimiento en la BD");

        //por seguridad
        a=null;
        daoAreaConocimiento=null;
    }
  
    public void agregarSubArea (String codArea, String codSubA){
        DaoAreaConocimiento daoAreaConocimiento = new DaoAreaConocimiento();

        System.out.println("Se va a agregar un area de conocimiento");
        
        daoAreaConocimiento.guardarSubAreaAgregada(codArea, codSubA);
             
    }
    
    public void quitarSubArea (String codArea, String codSubA){        
        DaoAreaConocimiento daoAreaConocimiento = new DaoAreaConocimiento();

        System.out.println("Se va a quitar un area de conocimiento");
        
        daoAreaConocimiento.quitarSubArea(codArea, codSubA);        
    }

    public Vector consultarArea(String codigo){
        Vector v= new Vector();

        AreaConocimiento a = new AreaConocimiento();
        DaoAreaConocimiento daoAreaConocimiento = new DaoAreaConocimiento();

        System.out.println("Se va a consultar un area de conocimiento");

        a = daoAreaConocimiento.retornarAreaPorCodigo(codigo);
         
        //se asignan datos al vector
        v.add(a.getCodigo());        
        v.add(a.getNombre());
        v.add(a.getDescripcion());      

        //por seguridad
        a=null;
        daoAreaConocimiento=null;

       return v;
    }
    
    public AreaConocimiento retornarArea(String codigo){
        DaoAreaConocimiento daoAreaConocimiento = new DaoAreaConocimiento();
        return daoAreaConocimiento.retornarAreaPorCodigo(codigo);
    }
    
    public boolean existeCodigo(String codigo){
        DaoAreaConocimiento daoAreaConocimiento = new DaoAreaConocimiento();
        return daoAreaConocimiento.existeCodigo(codigo);        
    }
    
    public void modificarArea(int caso, String codigo, String valor){
        DaoAreaConocimiento daoArea = new DaoAreaConocimiento();
        daoArea.modificarArea(caso, codigo, valor);
    }
    
    public boolean contieneSubArea(String area, String subArea){
        DaoAreaConocimiento daoArea = new DaoAreaConocimiento();
        boolean res =  daoArea.tieneSubArea(area, subArea);       
        return res;
    }
    
    public void descativarArea(String codigo){
        DaoAreaConocimiento daoArea = new DaoAreaConocimiento();
        daoArea.desactivarArea(codigo);
    }
    
    public void activarArea(String codigo){
        DaoAreaConocimiento daoArea = new DaoAreaConocimiento();
        daoArea.activarArea(codigo);
    }
    
    public Vector listarAreas(){
        DaoAreaConocimiento daoArea = new DaoAreaConocimiento();
        return daoArea.listarAreas();
    }
    
    public Vector listarSubareas(String cod_area){
        DaoAreaConocimiento daoArea = new DaoAreaConocimiento();
        return daoArea.listarSubareas(cod_area);
    }

    public boolean esActivado(String codigo){
        DaoAreaConocimiento daoArea = new DaoAreaConocimiento();
        return daoArea.esActivada(codigo);
    }
    
    public Vector consultarAreaPorCodigo(String codigo){
        DaoAreaConocimiento daoArea = new DaoAreaConocimiento();
        return daoArea.consultarAreaPorCodigo(codigo);        
    }
    
    public Vector consultarAreaPorNombre(String nombre){
        DaoAreaConocimiento daoArea = new DaoAreaConocimiento();
        return daoArea.consultarAreaPorNombre(nombre);        
    }
    
    public Vector consultarTodasLasAreas(){
        DaoAreaConocimiento daoArea = new DaoAreaConocimiento();
        return daoArea.consultarTodasLasAreas();        
    }
}